import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class TheOlympiadInInformaticsTest {

    protected TheOlympiadInInformatics solution;

    @Before
    public void setUp() {
        solution = new TheOlympiadInInformatics();
    }

    @Test
    public void testCase0() {
        int[] sums = new int[]{4, 7, 0, 5};
        int k = 0;

        int expected = 7;
        int actual = solution.find(sums, k);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void testCase1() {
        int[] sums = new int[]{4, 7};
        int k = 2;

        int expected = 3;
        int actual = solution.find(sums, k);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void testCase2() {
        int[] sums = new int[]{999999999};
        int k = 1000000000;

        int expected = 0;
        int actual = solution.find(sums, k);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void testCase3() {
        int[] sums = new int[]{95, 23, 87, 23, 82, 78, 59, 44, 12};
        int k = 70;

        int expected = 6;
        int actual = solution.find(sums, k);

        Assert.assertEquals(expected, actual);
    }

}
